/**
 * Peter
 * Created by: Peter Development Team
 *    http://peter.codeplex.com/
 * 
 * GNU General Public License version 2 (GPLv2)
 *    http://peter.codeplex.com/license
 *
 *  This code is provided on an AS IS basis, with no WARRANTIES,
 *  CONDITIONS or GUARANTEES of any kind.
 *
 **/

using System.ComponentModel;
using Peter.Common.MainMenu;

namespace Peter.Common.Interfaces
{
   /// <summary>
   /// Interface for dock items in peter.
   /// </summary>
   public interface IDockItem : INotifyPropertyChanged
   {
      /// <summary>
      /// Gets the image source of the dock item.
      /// </summary>
      MainMenuIcon Icon { get; set; }

      /// <summary>
      /// Gets or Sets if the content is selected.
      /// </summary>
      bool IsSelected { get; set; }

      /// <summary>
      /// Gets or Sets if the content is the acitve content.
      /// </summary>
      bool IsActive { get; set; }

      /// <summary>
      /// Gets or Sets if the content is enabled.
      /// </summary>
      bool IsEnabled { get; set; }

      /// <summary>
      /// Gets or Sets if the content can be closed or not.
      /// </summary>
      bool AllowClose { get; }

      /// <summary>
      /// Gets or Sets if the content can be a separate floating window or not.
      /// </summary>
      bool CanFloat { get; }

      /// <summary>
      /// Gets or Sets the title of the content.
      /// </summary>
      string Title { get; set; }

      /// <summary>
      /// Gets or Sets the tool tip text.
      /// </summary>
      string ToolTip { get; }

      /// <summary>
      /// Gets or Sets the dock item's content id.
      /// </summary>
      string ContentId { get; set; }

      /// <summary>
      /// Gets or Sets if this dock item has been composed by MEF or not.
      /// </summary>
      bool IsComposed { get; set; }
   }
}